# @(#)32	1.60  src/avs/fs/mmfs/ts/kernext/gpl-linux/Imakefile, mmfs, avs_remp, rempt1d1 10/9/01 13:10:54
/**/# $Id: Imakefile,v 1.85 2001/10/05 17:39:32 dcraft Exp $

/***** THIS MUST BE INCLUDED WITH IMAKE FILES *****/
/* Only include kernel and cxi headers in this layer */
SetGplIncludePath()
/***** THIS MUST BE INCLUDED WITH IMAKE FILES *****/

PTHREADS = -lpthread
INSTROOTFLAGS = -c -m 0500

NormalObjectRule()

#define IHaveSubdirs
#ifdef GPFS_ARCH_POWER
SUBDIRS = power
#endif
#ifdef GPFS_ARCH_I386
SUBDIRS = "i386"
#endif
#ifdef GPFS_ARCH_IA64
SUBDIRS = "ia64"
#endif

HEADERS = Shark-gpl.h prelinux.h postlinux.h linux2gpfs.h Logger-gpl.h arch-gpl.h
#ifdef SMB_LOCKS
HEADERS += oplock.h
#endif

LINUX_VFS = opsdeclare.ko gpl-ksyms.ko \
            gplInit.ko block.ko file.ko inode.ko dir.ko \
            super.ko cxiSystem.ko cxiVFSStats.ko cxiIOBuffer.ko \
            kx.ko mmap.ko ss.ko
#ifdef CONFIG_NSS
LINUX_VFS += cred.ko
#endif
#ifdef SMB_LOCKS
LINUX_VFS += oplock.ko
#endif

LINUX_UP1G = cfiles_UP1G.ko opsdeclare.ko gpl-ksyms.ko
LINUX_UP4G = cfiles_UP4G.ko opsdeclare.ko gpl-ksyms.ko
LINUX_SMP1G = cfiles_SMP1G.ko opsdeclare.ko gpl-ksyms.ko
LINUX_SMP4G = cfiles_SMP4G.ko opsdeclare.ko gpl-ksyms.ko
LINUX_SMP4G_K2G = cfiles_SMP4G_K2G.ko opsdeclare.ko gpl-ksyms.ko

LINUX_CUSTOM = cfiles_cust.ko opsdeclare.ko gpl-ksyms.ko

MMLDFLAGS =

tracedev: tracedev.ko tracedev-ksyms.ko
	$(RM) $@
	ld -r -o $@ -Map tracedev.map --cref $(MMLDFLAGS) tracedev.ko \
           tracedev-ksyms.ko

#ifdef GPFS_ARCH_IA64
GPL_LIBS = $(GPL_LIB_DIR)/libarch-gpl.a

MMFS_KEXTS = mmfslinux

mmfslinux: $(LINUX_VFS) $(GPL_LIBS)
	$(RM) $@
	ld -r -o $@ $(LINUX_VFS) $(GPL_LIBS) -Map $@.map \
		--cref $(MMLDFLAGS)
#else

#ifdef CUSTOM_LINUX_BUILD
MMFS_KEXTS = mmfslinux
#else
MMFS_KEXTS = mmfslinux_UP1G mmfslinux_UP4G mmfslinux_SMP1G mmfslinux_SMP4G \
	mmfslinux_SMP4G_K2G
#endif

mmfslinux_UP1G: $(LINUX_UP1G) $(GPL_LIB_DIR)/libarch-gpl_UP1G.a
	$(RM) $@
	ld -r -o $@ $(LINUX_UP1G) $(GPL_LIB_DIR)/libarch-gpl_UP1G.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)

mmfslinux_UP4G: $(LINUX_UP4G) $(GPL_LIB_DIR)/libarch-gpl_UP4G.a
	$(RM) $@
	ld -r -o $@ $(LINUX_UP4G) $(GPL_LIB_DIR)/libarch-gpl_UP4G.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)

mmfslinux_SMP1G: $(LINUX_SMP1G) $(GPL_LIB_DIR)/libarch-gpl_SMP1G.a
	$(RM) $@
	ld -r -o $@ $(LINUX_SMP1G) $(GPL_LIB_DIR)/libarch-gpl_SMP1G.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)

mmfslinux_SMP4G: $(LINUX_SMP4G) $(GPL_LIB_DIR)/libarch-gpl_SMP4G.a
	$(RM) $@
	ld -r -o $@ $(LINUX_SMP4G) $(GPL_LIB_DIR)/libarch-gpl_SMP4G.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)

mmfslinux_SMP4G_K2G: $(LINUX_SMP4G_K2G) $(GPL_LIB_DIR)/libarch-gpl_SMP4G_K2G.a
	$(RM) $@
	ld -r -o $@ $(LINUX_SMP4G_K2G) $(GPL_LIB_DIR)/libarch-gpl_SMP4G_K2G.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)

mmfslinux: $(LINUX_CUSTOM) $(GPL_LIB_DIR)/libarch-gpl_cust.a
	$(RM) $@
	ld -r -o $@ $(LINUX_CUSTOM) $(GPL_LIB_DIR)/libarch-gpl_cust.a \
		-Map $@.map --cref $(MMLDFLAGS) \
		$$($(C_COMP) -print-libgcc-file-name)
#endif
clean:: ; $(RM) $(MMFS_KEXTS) tracedev

MkdirTarget($(GPL_HEADER_DIR))
InstallHeaders($(HEADERS), $(GPL_HEADER_DIR))

InstallRootPrograms($(MMFS_KEXTS), $(DESTDIR)/bin)

KDUMP = kdump.o kdump-kern.ko
ProgramTarget(kdump, $(KDUMP), , )

ProgramTarget(lxtrace, lxtrace.o, , $(PTHREADS))
ProgramTarget(dumpconv, dumpconv.o, , )

ROOT_CMDS = lxtrace dumpconv

InstallFiles(tracedev, $(INSTSHELLFLAGS), $(DESTDIR)/bin)
InstallFiles(lxtrace.sial, $(INSTSHELLFLAGS), $(DESTDIR)/bin)

InstallRootPrograms($(ROOT_CMDS), $(DESTDIR)/bin)

/* RPM source build option to install images for kernel modules */
BUILD_DESTDIR = /usr/lpp/mmfs/bin
InstallImages:: $(MMFS_KEXTS) tracedev
	@(case '$(MAKEFLAGS)' in *[ik]*) set +e;; esac; \
	for i in $(MMFS_KEXTS); do \
	(echo $$i; $(INSTALL) $(INSTROOTFLAGS) $$i $(BUILD_DESTDIR)/$$i) done)
	@mv $(BUILD_DESTDIR)/tracedev $(BUILD_DESTDIR)/tracedev.BAK
	@$(INSTALL) $(INSTROOTFLAGS) tracedev $(BUILD_DESTDIR)/tracedev

TRACELIST = gplInit.c block.c dir.c file.c inode.c super.c \
            cxiVFSStats.c cxiSystem.c cxiIOBuffer.c kx.c ss.c \
            mmap.c cred.c oplock.c 

TraceTarget(gpl-linux, $(TRACELIST))

DependTargetPK()
